<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Model\Navs;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Validator;

class NavsController extends Controller
{
    //get admin/navs 自定义导航
    public function index(){
    	$data = Navs::orderBy('nav_order','asc')->get();
        return view('admin.navs.index',compact('data'));
    }

    //排序异步请求次排序操作
    public function changeOrder(){
        //接收更改的排序信息
        $input = Input::all();
        //查询更改的排序id
        $navs = Navs::find($input['nav_id']);
        $navs->nav_order = $input['nav_order'];
        //更改排序号
        $re = $navs->update();
        if($re){
            //更改成功后的信息 返回值为json对象
            $data = [
                'status'=>0,
                'msg'=>'自定义导航排序更新成功',
            ];
        }else{
            //更改失败后的信息 返回值为json对象
            $data = [
                'status'=>1,
                'msg'=>'自定义导航排序更新失败,请稍后重试!',
            ];
        }
        return $data;
    }

    //get admin/navs/create 添加自定义导航
    public function create(){
    	return view('admin.navs.add');
    }

    
    //post admin/link 提交添加导航
    public function store(){
        //接收添加页面接收的数据 except函数是除了某个字段之外
        $input = Input::except('_token');
        //自动验证
        $rules = [
                'nav_name'=>'required',//分类名称不能为空
                'nav_url'=>'required',
            ];
            //中文提示信息
            $message = [
                'nav_name.required'=>'链接名称不能为空',
                'nav_url.required'=>'链接地址不能为空',
            ];
            //自动验证make方法中三个参数(验证什么信息,验证规则,中文提示信息)
            $v = Validator::make($input,$rules,$message);
            //passes()验证信息是否通过
            if($v->passes()){
                //使用create方法保存数据 需要在model中添加$guarded=[]字段 设置全部接收
                $re = Navs::create($input);
                if($re){
                    //添加成功放回列表页显示
                    return redirect('admin/navs');
                }else{
                    //失败返回错误信息
                    return back()->with('errors','链接添加失败,请稍后重试!');
                }
            }else{
                //修改密码验证信息不通过 返回上一步操作 输出错误信息
                return back()->withErrors($v);
            }
    }

	public function show(){

	}


	//get admin/navs/{nav_id} 编辑导航
    public function edit($nav_id){
        //查询需要编辑的数据
        $field = Navs::find($nav_id);
        //模板遍历
        return view('admin.navs.edit',compact('field'));
    }
    //put admin/navs/{nav_id} 更新导航
    public function update($nav_id){
        $input = Input::except('_token','_method');
        $re = Navs::where('nav_id',$nav_id)->update($input);
        if($re){
            return redirect('admin/navs');
        }else{
            return back()->with('errors','链接更新失败,请稍后重试!');
        }
    }


    //delete admin/navs/{nav_id} 删除导航
    public function destroy($nav_id){
        //查询要删除的数据 根据id查询
        $re = Navs::where('nav_id',$nav_id)->delete();
        //数据删除成功
        if($re){
            //数据删除成功 修改状态 输出信息
            $data = [
                'status' => 0,
                'msg' => '分类删除成功！',
            ];
        }else{
            //数据删除失败 修改状态 输出信息
            $data = [
                'status' => 1,
                'msg' => '分类删除失败，请稍后重试！',
            ];
        }
        return $data;
    }
}
